const app = getApp()
const api = require('../../utils/api')
const util = require('../../utils/util')

Page({
  data: {
    userInfo: null,
    hasUserInfo: false,
    canIUseGetUserProfile: false,
    receiptList: [],
    loading: {
      receipt: false
    }
  },
  
  onLoad() {
    if (wx.getUserProfile) {
      this.setData({
        canIUseGetUserProfile: true
      })
    }
    
    // 检查用户信息
    const userInfo = wx.getStorageSync('userInfo')
    if (userInfo) {
      // 确保department字段存在
      if (!userInfo.department) {
        userInfo.department = '财务部'
      }
      
      this.setData({
        userInfo,
        hasUserInfo: true
      })
      this.loadData()
    }
  },
  
  onShow() {
    if (this.data.hasUserInfo) {
      this.loadData()
    }
  },
  
  onPullDownRefresh() {
    this.loadData(() => {
      wx.stopPullDownRefresh()
    })
  },
  
  // 加载首页数据
  loadData(callback) {
    this.loadReceiptRecords()
    
    if (callback && typeof callback === 'function') {
      callback()
    }
  },
  
  // 加载报销凭证记录
  loadReceiptRecords() {
    this.setData({
      'loading.receipt': true
    })
    
    // 模拟API调用，使用模拟数据
    setTimeout(() => {
      const mockData = [
        {
          id: '001',
          receiptType: '增值税发票',
          status: '1', // 鉴定完成
          uploadTime: new Date().getTime() - 86400000, // 一天前
          result: 'pass'
        },
        {
          id: '002',
          receiptType: '火车票',
          status: '1', // 鉴定完成
          uploadTime: new Date().getTime() - 172800000, // 两天前
          result: 'fail'
        },
        {
          id: '003',
          receiptType: '普通发票',
          status: '0', // 鉴定中
          uploadTime: new Date().getTime() - 3600000 // 一小时前
        }
      ]
      
      this.setData({
        receiptList: mockData,
        'loading.receipt': false
      })
    }, 500)
  },
  
  // 获取用户信息
  getUserProfile() {
    // 临时修改：直接设置模拟用户信息并显示应用中心
    const mockUserInfo = {
      nickName: '测试用户',
      department: '财务部',
      avatarUrl: ''
    }
    
    // 保存用户信息
    app.globalData.userInfo = mockUserInfo
    wx.setStorageSync('userInfo', mockUserInfo)
    
    // 更新页面状态
    this.setData({
      userInfo: mockUserInfo,
      hasUserInfo: true
    })
    
    // 加载数据
    this.loadData()
    
    // 提示登录成功
    wx.showToast({
      title: '登录成功',
      icon: 'success',
      duration: 1500
    })
  },
  
  // 退出登录
  logout() {
    // 显示确认对话框
    wx.showModal({
      title: '提示',
      content: '确定要退出登录吗？',
      success: (res) => {
        if (res.confirm) {
          // 清除用户信息
          app.globalData.userInfo = null
          app.globalData.token = null
          wx.removeStorageSync('userInfo')
          wx.removeStorageSync('token')
          
          // 更新页面状态
          this.setData({
            userInfo: null,
            hasUserInfo: false
          })
          
          // 提示退出成功
          wx.showToast({
            title: '已退出登录',
            icon: 'success',
            duration: 1500
          })
        }
      }
    })
  },
  
  // 格式化日期
  formatDate(date) {
    if (!date) return '--'
    return util.formatDate(date, 'YYYY-MM-DD HH:mm')
  },
  
  // 跳转到报销凭证鉴别页面
  navigateToReceiptUpload() {
    wx.navigateTo({
      url: '/pages/receipt/upload'
    })
  },
  
  // 跳转到鉴别报告查询页面
  navigateToReportQuery() {
    wx.navigateTo({
      url: '/pages/receipt/report'
    })
  },
  
  // 查看报告详情
  viewReport(e) {
    const { id } = e.currentTarget.dataset
    wx.navigateTo({
      url: `/pages/receipt/report?id=${id}`
    })
  },
  
  // 下载报告
  downloadReport(e) {
    const { id } = e.currentTarget.dataset
    
    wx.showLoading({
      title: '下载中...',
      mask: true
    })
    
    // 模拟下载过程
    setTimeout(() => {
      wx.hideLoading()
      wx.showToast({
        title: '下载成功',
        icon: 'success',
        duration: 1500
      })
    }, 1500)
    
    // 阻止事件冒泡
    return false
  }
}) 